package com.example.springsecurity.service;

import com.example.springsecurity.common.vo.login.SystemUserLoginInfoVo;
import com.example.springsecurity.entity.SystemUser;
import com.example.springsecurity.common.vo.UserLoginResultVo;

/**
 * @Description：系统登陆服务接口
 * @Author： fengcheng
 * @Date： 2024/12/19 10:17
 */
public interface SystemLoginService {

    /**
     * @Description：登陆系统
     * @Author：fengcheng
     * @Date：2025/1/17 10:07
     * @Param：systemUser
     * @ParamsType：[com.example.springsecurity.entity.SystemUser]
     * @Return：com.example.springsecurity.vo.UserLoginResultVo
     */
    UserLoginResultVo login(SystemUser systemUser);

    /**
     * @Description：退出系统
     * @Author：fengcheng
     * @Date：2025/1/17 10:07
     * @Param：authorization
     * @ParamsType：[java.lang.String]
     * @Return：java.lang.Boolean
     */
    Boolean logout(String authorization);

    /**
     * @Description：登陆时是否显示验证码
     * @Author：fengcheng
     * @Date：2025/1/17 10:16
     * @Param：mobile
     * @ParamsType：[java.lang.String]
     * @Return：boolean
     */
    boolean enableCaptcha(String mobile);

    /**
     * @Description：获取用户信息接口
     * @Author：fengcheng
     * @Date：2025/1/17 10:17
     * @Param：authorizationHeader
     * @ParamsType：[java.lang.String]
     * @Return：com.example.springsecurity.vo.login.SystemUserLoginInfoVo
     */
    SystemUserLoginInfoVo getUserInfo(String authorizationHeader);
}
